home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 242 / Issue 242 - April 2008 - DPCS0408DVD.ISO / Software Money Savers / VirtualDub / Source / VirtualDub-1.7.7-src.7z / src / Asuka / source / main.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2007-08-20  |  3.0 KB  |  102 lines

  1. //    Asuka - VirtualDub Build/Post-Mortem Utility
  2. //    Copyright (C) 2005-2007 Avery Lee
  3. //
  4. //    This program is free software; you can redistribute it and/or modify
  5. //    it under the terms of the GNU General Public License as published by
  6. //    the Free Software Foundation; either version 2 of the License, or
  7. //    (at your option) any later version.
  8. //
  9. //    This program is distributed in the hope that it will be useful,
  10. //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. //    GNU General Public License for more details.
  13. //
  14. //    You should have received a copy of the GNU General Public License
  15. //    along with this program; if not, write to the Free Software
  16. //    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  17.  
  18. #pragma warning(disable: 4786)        // SHUT UP
  19.  
  20. #include "stdafx.h"
  21. #include <windows.h>
  22.  
  23. #include <stdio.h>
  24. #include <stdlib.h>
  25. #include <stddef.h>
  26.  
  27. #include <vd2/system/vdtypes.h>
  28. #include <vd2/system/vdstl.h>
  29. #include <vd2/system/error.h>
  30.  
  31. #include <vector>
  32. #include <algorithm>
  33.  
  34. #include "utils.h"
  35.  
  36. using namespace std;
  37.  
  38. void tool_verinc(bool amd64);
  39. void tool_lookup(const vdfastvector<const char *>& args, const vdfastvector<const char *>& switches, bool amd64);
  40. void tool_mapconv(const vdfastvector<const char *>& args, const vdfastvector<const char *>& switches, bool amd64);
  41. void tool_fxc(const vdfastvector<const char *>& args, const vdfastvector<const char *>& switches, bool amd64);
  42. void tool_makearray(const vdfastvector<const char *>& args, const vdfastvector<const char *>& switches);
  43. void tool_glc(const vdfastvector<const char *>& args, const vdfastvector<const char *>& switches);
  44. void tool_fontextract(const vdfastvector<const char *>& args, const vdfastvector<const char *>& switches);
  45. void tool_snapsetup();
  46.  
  47. int main(int argc, char **argv) {
  48.     --argc;
  49.     ++argv;
  50.  
  51.     vdfastvector<const char *> switches, args;
  52.     bool amd64 = false;
  53.  
  54.     while(const char *s = *argv++) {
  55.         if (s[0] == '/') {
  56.             if (!_stricmp(s+1, "amd64"))
  57.                 amd64 = true;
  58.             else
  59.                 switches.push_back(s+1);
  60.         } else {
  61.             args.push_back(s);
  62.         }
  63.     }
  64.  
  65.     // look for mode
  66.     if (args.empty())
  67.         help();
  68.  
  69.     const char *s = args[0];
  70.  
  71.     args.erase(args.begin());
  72.  
  73.     try {
  74.         if (!_stricmp(s, "verinc")) {
  75.             read_version();
  76.             tool_verinc(amd64);
  77.         } else if (!_stricmp(s, "lookup"))
  78.             tool_lookup(args, switches, amd64);
  79.         else if (!_stricmp(s, "mapconv")) {
  80.             read_version();
  81.             tool_mapconv(args, switches, amd64);
  82.         } else if (!_stricmp(s, "fxc")) {
  83.             tool_fxc(args, switches, amd64);
  84.         } else if (!_stricmp(s, "makearray")) {
  85.             tool_makearray(args, switches);
  86.         } else if (!_stricmp(s, "glc")) {
  87.             tool_glc(args, switches);
  88.         } else if (!_stricmp(s, "fontextract")) {
  89.             tool_fontextract(args, switches);
  90.         } else if (!_stricmp(s, "snapsetup")) {
  91.             tool_snapsetup();
  92.         } else
  93.             help();
  94.     } catch(const char *s) {
  95.         fail("%s", s);
  96.     } catch(const MyError& e) {
  97.         fail("%s", e.gets());
  98.     }
  99.  
  100.     return 0;
  101. }
  102.